package com.research.domain.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.common.annotation.Excel;
import com.common.core.domain.BaseEntity;

import java.util.Date;

/**
 * 研究机构-机构项目、成果、获奖关联对象 biz_research_product
 *
 * @author hst
 * @date 2025-03-25
 */
@Data
@TableName("biz_research_product")
public class ResearchProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    private String id;
    private String researchUnitId;
    private String productId;
    private String productType;
    private String deleteFlag;

    @TableField(exist = false)
    private String projectId;
    @TableField(exist = false)
    private String projectClass;
    @TableField(exist = false)
    private String code;
    @TableField(exist = false)
    private String feeAuthorize;
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date authorizeDate;
    @TableField(exist = false)
    private String chargerName;

    @TableField(exist = false)
    private String name;
    @TableField(exist = false)
    private String unitId;

    @TableField(exist = false)
    private String achievementId;
    @TableField(exist = false)
    private String firstAuthorName;
    @TableField(exist = false)
    private String allAuthors;
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date productDate;
    @TableField(exist = false)
    private String achievementType;

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }
    public void setResearchUnitId(String researchUnitId)
    {
        this.researchUnitId = researchUnitId;
    }

    public String getResearchUnitId()
    {
        return researchUnitId;
    }
    public void setProductId(String productId)
    {
        this.productId = productId;
    }

    public String getProductId()
    {
        return productId;
    }
    public void setProductType(String productType)
    {
        this.productType = productType;
    }

    public String getProductType()
    {
        return productType;
    }
    public void setDeleteFlag(String deleteFlag)
    {
        this.deleteFlag = deleteFlag;
    }

    public String getDeleteFlag()
    {
        return deleteFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("researchUnitId", getResearchUnitId())
                .append("productId", getProductId())
                .append("productType", getProductType())
                .append("deleteFlag", getDeleteFlag())
                .toString();
    }
}
